package com.transcendence.mobileguard.activity;

import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Toast;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import com.transcendence.mobileguard.receiver.AdminReceiver;
import com.transcendence.mobileguard.utils.log.LogUtils;

/**
 * @author joephone
 * @date 2024/12/27
 * @desc
 * @edition 1.0
 */

public abstract class BaseActivity extends AppCompatActivity {

    protected DevicePolicyManager mDPM;
    protected ComponentName mDeviceComponentName;


    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // 设备策略管理器
        mDPM = (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE);
        // 初始化管理员组件
        mDeviceComponentName = new ComponentName(this, AdminReceiver.class);

        initVariables();
        initViews(savedInstanceState);
        loadData();
    }

    /** 初始化变量，包括启动Activity传过来的变量和Activity内的变量 */
    public abstract void initVariables();

    /** 初始化视图，加载layout布局文件，初始化控件，为控件挂上事件 */
    protected abstract void initViews(Bundle savedInstanceState);

    /** 加载数据，包括网络数据，缓存数据，用户数据，调用服务器接口获取的数据 */
    protected abstract void loadData();

    public void showToast(CharSequence text){
        Toast.makeText(this,text,Toast.LENGTH_SHORT).show();
    }

    /** 打印日志 */
    public void showLog(String title, String msg){
        LogUtils.d( title + "-->" + msg);
    }

    /**
     * 激活超级管理员权限 设置->安全->设备管理器     *
     */
    public void activeAdmin() {
        Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
        intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mDeviceComponentName);
        intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
                "手机安全卫士-手机防盗，您的好帮手，值得拥有");
        startActivity(intent);
        showToast("请先激活手机防盗的管理员权限");
    }
}
